Use of computing devices is becoming more ubiquitous by the day. Computing devices range from standard desktop computers to wearable computing technology and beyond. One area of computing devices that has grown in recent years is in the context of image rendering, such as rendering of games, video streams, etc., which typically rely on a graphics processing unit (GPU) to render graphics from a computing device to a display device based on rendering instructions received from the computing device. Raytracing of images is being developed as another solution for generating images, via an application, and requesting display of the images via a GPU. In raytracing, the application can define the image to be displayed and can define an acceleration structure to facilitate efficiently generating the image on a display.
The acceleration structure is used to rapidly determine which objects from a scene a particular ray is likely to intersect and to reject one or more objects that the ray will not hit. The determined objects can be drawn on the display based on information related to the ray intersecting the object. Moreover, in raytracing, the application can define shader tables specifying shaders to invoke when rays intersect or otherwise interact with something else in a raytracing scene. The GPU can draw the objects of the scene based on the rays and can invoke, based on the shader tables, the appropriate shaders when the rays intersect or interact with other objects in the raytracing scene.